#include <iostream>
#include <string>
// #include <ctemplate/template.h>

// int main()
// {
// 	std::string in_html = "./test.html";
// 	std::string value = "hhhhhhh";

// 	// 形成数据字典
// 	ctemplate::TemplateDictionary root("test");	//unordered_map<> test;
// 	root.SetValue("key",value);		//test.insert({});

// 	//获取被渲染网页对象
// 	ctemplate::Template *tpl = ctemplate::Template::GetTemplate(in_html,ctemplate::DO_NOT_STRIP);

// 	//添加字典数据到网页中
// 	std::string out_html;
// 	tpl->Expand(&out_html,&root);

// 	//完成了渲染
//     std::cout << out_html << std::endl;
// }


#include<mysql/mysql.h>
#include<errno.h>
#include<string.h>
#include<stdio.h>

using namespace std;

const std::string host = "127.0.0.1";
const int port = 3306;
const std::string user = "oj_server";
const std::string db = "oj_server";
const string passwd = "123456";
const std::string oj_questions = "questions";

int main(int argc, char *argv[])
{
	printf("mysql client Version: %s\n", mysql_get_client_info());

	//初始化
	MYSQL *mysql = mysql_init(nullptr);
	//链接数据库
	if(nullptr == mysql_real_connect(mysql,host.c_str(),user.c_str(),passwd.c_str(),db.c_str(),port,nullptr,0))
	{
		cout <<  "连接数据库失败!" << "\n";
		return 1;
	}

	// 一定要设置该链接的编码格式, 要不然会出现乱码问题
	mysql_set_character_set(mysql,"utf8");

	// 执行sql语句
	const string sql_c = "select * from questions";
	if(0 != mysql_query(mysql,sql_c.c_str()))
	{
		cout << sql_c << " execute error!" << "\n";
		return 1;
	}

	// 提取结果
	MYSQL_RES *res = mysql_store_result(mysql);

	// 分析结果
	int rows = mysql_num_rows(res);	//获取行数
	int cols = mysql_num_fields(res);	//获取列数

	MYSQL_FIELD *field = mysql_fetch_fields(res);	//获取列名
	for(int i = 0;i < cols;i++)
	{
		cout << field[i].name << " ";
	}
	cout << "\n";

	//获取内容
	MYSQL_ROW line;
	for(int i = 0;i < rows;i++)
	{
		line = mysql_fetch_row(res);
		for(int j = 0; j < cols;j++)
		{
			cout << line[j] << " ";
		}
		cout << "\n";
	}

	// 释放结果空间
	free(res);
	// 关闭mysql连接
	mysql_close(mysql);

	return 0;
}











/*#include <iostream>
#include <vector>
#include <boost/algorithm/string.hpp>

// // #include <sys/time.h>
// // #include <sys/resource.h>
// // #include <unistd.h>
// // #include <signal.h>
// // #include <jsoncpp/json/json.h>

int main()
{
		std::vector<std::string> tokens;
		const std::string str = "1:判断回文数::::::简单:1:30000";
		const std::string sep = ":";
		boost::split(tokens, str, boost::is_any_of(sep), boost::algorithm::token_compress_off);

		for(auto &iter : tokens){
			std::cout << iter << std::endl;
		}
	return 0;
}*/
